There are many varieties of header compression including RFC 2507 header compression. Header compression provides numerous advantages on low- or medium-speed links. These advantages include improving interactive response times, allowing the use of small packets for bulk data with good line efficiency, allowing the use of small packets for delay sensitive low data-rate traffic, decreasing header overhead and reducing packet loss rate over lossy links. Headers that can be compressed include TCP, UDP, IPv4 and IPv6 base and extension headers. For non-TCP headers such as UDP/IP headers, compression slow-start and periodic header refreshes permit periods of packet discard after loss of a header that changes the context. There are hooks for adding header compression schemes on top of UDP.
Header compression relies on many fields being constant or changing seldomly in consecutive fields belonging to the same packet stream. The general principle of header compression is to occasionally send a packet with a full header and subsequent compressed headers refer to the context established by the full header and may contain incremental changes to the context. An uncompressed header updates or refreshes the context for a packet stream. It carries a context identification that will be used to identify the context for the packet stream. Full headers for non-TCP packet streams also carry the generation of the context they update or refresh using a generation identification.
An issue with header compression and header compression using RFC 2507 is that the packet containing the full header can be lost between the source and the destination, which is more likely in wireless mobile environments. If the full header is lost, all other packets in the stream will still be compressed by the source but the destination cannot decompress the compressed stream because it has no information to understand the compression.
Recovery mechanisms are known for lost header compression information within RFC 2507 and other header compression techniques. One mechanism is to refresh the context by sending a full header after X packets or Y period of time. These mechanisms, however, are not optimal. If X or Y are too large, then many undecodable messages are sent from the source and the destination such that time and data is lost. On the other hand if X and Y are too small, then there is not much compression because full headers are being sent more often.
In view of the foregoing, there is a need to provide an efficient mechanism for refreshing full headers between and a source and a destination to optimize the benefits of header compression.
Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of embodiments of the present invention.